A suite of abstract domains for static analysis of string values
نویسندگان
چکیده
interpretation is a theory to define and soundly approximate the semantics of a program [8, 9], focusing on some runtime properties of interest. Usually, each concrete state is composed by a set of elements (e.g., all the possible computational states), that is approximated by a unique element in the abstract domain. Formally, the concrete domain ℘(D) forms a complete lattice 〈℘(D),⊆, ∅,D,∪,∩〉. On this domain, a concrete semantics S is defined. In the same way, an abstract semantics is defined, and it is aimed to approximate the concrete one in a computable way. Formally, the abstract domain A has to form a complete lattice 〈A,≤A,⊥A,>A,tA,uA〉. The concrete and abstract domains are related by a concretization γA and an abstraction αA functions, and, in order to obtain a sound analysis, these have to form a Galois connection. Formally, 〈℘(D),⊆〉 −−−→ ←−−− αA γA 〈A,≤A〉. One function univocally identifies the other, and in the rest of the paper we will focus on concretization-based Galois connection, and in particular on the following theorem (Proposition 7 of [10]). Theorem 1.1 (Concretization-based Galois connection) Let the concretization function γA : A→ ℘(D) be a complete meet preserving map. Define the abstraction function by αA = λY. uA {z : γA(z) ⊆ Y}. If αA is well-defined then 〈℘(D),⊆〉 −−−→ ←−−− αA γA 〈A,≤A〉. When abstract domains do not satisfy the ascending chain condition, a widening operator ∇A is required in order to guarantee the convergence of the fixed point computation. This is an upper bound operator such that for all increasing chains a0 ≤A . . . an ≤A . . . the increasing chain defined as w0 = a0, . . . ,wi+1 = wi∇Aai+1 converges after a finite number of steps [5]. An abstract semantics S is a sound approximation of the concrete one if ∀a ∈ A : γA(SJaK) ⊇ SJγA(a)K.
منابع مشابه
Static Analysis of String Values
In this paper we propose a unifying approach for the static analysis of string values based on abstract interpretation, and we present several abstract domains that track different types of information. In this way, the analysis can be tuned at different levels of precision and efficiency, and it can address specific properties.
متن کاملJSAI: Designing a Sound, Configurable, and Efficient Static Analyzer for JavaScript
We describe JSAI, an abstract interpreter for JavaScript. JSAI uses novel abstract domains to compute a reduced product of type inference, pointer analysis, string analysis, integer and boolean constant propagation, and control-flow analysis. In addition, JSAI allows for analysis control-flow sensitivity (i.e., context-, path-, and heap-sensitivity) to be modularly configured without requiring ...
متن کاملCombining String Abstract Domains for JavaScript Analysis: An Evaluation
Strings play a central role in JavaScript and similar scripting languages. Owing to dynamic features such as the eval function and dynamic property access, precise string analysis is a prerequisite for automated reasoning about practically any kind of runtime property. Although the literature presents a considerable number of abstract domains for capturing and representing specific aspect of st...
متن کاملAbstract Parsing: Static Analysis of Dynamically Generated String Output Using LR-Parsing Technology
parsing: static analysis of dynamically generated string output using LR-parsing technology Kyung-Goo Doh , Hyunha Kim, and David A. Schmidt ⋆⋆ 1 Hanyang University, Ansan, South Korea 2 Kansas State University, Manhattan, Kansas, USA Abstract. We combine LR(k)-parsing technology and data-flow analysis to analyze, in advance of execution, the documents generated dynamically by a program. Based ...
متن کاملQuantifying the Precision of Numerical Abstract Domains
In the context of the Abstract Interpretation framework, initiated by Cousot and Cousot to model program static analyses, numerous numerical abstract domains have been proposed. Their number is due to both the intended usage of the domains (properties to prove) and the trade-off between precision and computation efficiency. In this paper, we propose a way to quantify the precision of abstract v...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Softw., Pract. Exper.
دوره 45 شماره
صفحات -
تاریخ انتشار 2015